package com.company.demo03TCP;

import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class TCPClient {
    public static void main(String[] args) {
        try (// 1. 创建客户端的Socket对象，指明服务器的IP地址和端口号
             Socket socket = new Socket("127.0.0.1", 8888);
             // 2. 获取字节输出流对象，便于后续向服务器发送数据
             OutputStream os = socket.getOutputStream();
             // 3. 使用数据流包装低级的字节输出流对象，提升性能
             DataOutputStream dos = new DataOutputStream(os)){
            Scanner sc = new Scanner(System.in);
            // 4. 实现一个客户端多次发送数据给服务器，直到客户端用户输入的是exit就退出
            while (true) {
                System.out.println("请输入要发送的数据：");
                String msg = sc.nextLine();
                if ("exit".equals(msg)){
                    break;
                }
                dos.writeUTF(msg);
                dos.flush(); // 刷新缓冲区，立即将数据写入到Socket缓冲区中
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}